package com.heima.controller;

import com.heima.dto.MenuDto;
import com.heima.dto.pagedto.MenuPageDto;
import com.heima.pojo.Menu;
import com.heima.result.PageResult;
import com.heima.result.Result;
import com.heima.service.MenuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Slf4j
@RequestMapping("/system/menu")
public class MenuController {

    @Autowired
    private MenuService menuService;

    /**
     * 新增菜单
     * @param menuDto
     * @return
     */
    @PostMapping
    public Result insertMenu(@RequestBody MenuDto menuDto){
        log.info("新增菜单：{}",menuDto);
        menuService.insertMenu(menuDto);
        return Result.success();
    }

    /**
     * 菜单管理查询
     * @param menuPageDto
     * @return
     */
    @GetMapping("/list")
    public Result queryMenuList(MenuPageDto menuPageDto){
        log.info("菜单管理搜索");
        List<Menu> menuList = menuService.queryMenuList(menuPageDto);
        return Result.success(menuList);
    }

    /**
     * 获取菜单信息（用于修改界面回显）
     * @param menuId
     * @return
     */
    @GetMapping("{menuId}")
    public Result getMenuInfo(@PathVariable Integer menuId){
        log.info("获取详细信息：{}",menuId);
        Menu menu = menuService.getMenuInfo(menuId);
        return Result.success(menu);
    }

    /**
     * 修改菜单
     * @param menu
     * @return
     */
    @PutMapping
    public Result updateMenu(@RequestBody Menu menu){
        log.info("修改菜单：{}",menu);
        menuService.updateMenu(menu);
        return Result.success();
    }

    /**
     * 删除菜单
     * @param menuId
     * @return
     */
    @DeleteMapping("{menuId}")
    public Result deleteMenu(@PathVariable Integer menuId){
        log.info("删除菜单：{}",menuId);
        menuService.deleteMenu(menuId);
        return Result.success();
    }

    @GetMapping("/treeselect")
    public Result menuTreeSelect(){
        log.info("菜单树状查询");
        return null;
    }
}